const schedule = require('node-schedule')


module.exports =  {
    /**
     * 创建定时任务
     * @param {*} id 定时任务唯一标识
     * @param {*} time 定时执行时间，time有2种形式：
     * 1、具体的日期形式：如'2024-05-30 15:03:00'
     * 2、使用的是 Cron 风格的定时器：6个星号占位符：****** 分别代表：秒 分 时 日 月 周几
     * 如：
     * 每分钟的第30秒触发： '30 * * * * *'
     * 每小时的1分30秒触发 ：'30 1 * * * *'
     * 每天的凌晨1点1分30秒触发 ：'30 1 1 * * *'
     * 每月的1日1点1分30秒触发 ：'30 1 1 1 * *'
     * 2016年的1月1日1点1分30秒触发 ：'30 1 1 1 2016 *'
     * 每周1的1点1分30秒触发 ：'30 1 1 * * 1'
     * 0 0 10,14,16 * * ? 每天上午10点，下午2点，4点
     */
    createSchedule:(id,time)=>{
        schedule.cancelJob(id) // 先停止
        schedule.scheduleJob(id,time,()=>{
            console.log(id+':::'+new Date())
        });
    },
    cancelSchedule: id=>{
        schedule.cancelJob(id) // 停止
    },

    /**
     * 每周问题汇总提醒（每周星期五提醒）
     * @param {*} 
     */
    weeklyReminder:()=>{
        //const time = new Date('2024-05-30 15:03:00') //new Date(2022,10,18,18,49,0)
        const time = '1 1 18 * * 5' // 每周5的下午18点1分1秒触发
        schedule.scheduleJob(time,()=>{
            console.log('*********定时任务触发:::'+new Date())
        });
    }
}


